<?php

/**
 * Image path
 * 
 * Devolve base_url + /assets/img/site/common/img/
 * 
 * @return string caminho padrão da imagem site
 */
function imgp() {
    return (base_url() . "assets/img/site/common/img/");
}


/**
 * Image Upload
 * 
 * Devolve base_url + /assets/uploads/
 * 
 * @return string caminho padrão da imagem site
 */
function imgu(){
    return (base_url() . "assets/uploads/");
}



/**
 * Passe o nome do grupo CSS ver aquivo "min/groupsConfig.php" que 
 * quer retornar o include dele compactado.
 * 
 * Retorna 
 * <pre> <link rel="stylesheet" type="text/css" href="url do grupo de arquivos compactados" media="all" /> </pre>
 * 
 * @param string $name
 * @param boolean $workFake Passa true se quiser que ele não agrupe e compacte e chame item a item
 */
function cssGroup($name,$workFake=false){
    $css = "css_".$name;
    $url = (base_url() . "min/g=$css"); // add &debug to url to enable debug mode
    
    
    if(!$workFake)
        echo('<link rel="stylesheet" type="text/css" href="'.$url.'" media="all" />'."\n");
    
    else{
        
        // se estamos trabalhando em fake mode, requesta os arquivos diretamente
        // sem passar pela compactação ou grupo
        $grupos = require('min/groupsConfig.php');
        $index = $grupos['css_'.$name];
        foreach($index as $file){
            $url = base_url().substr($file, 2);
            echo('<link rel="stylesheet" type="text/css" href="'.$url.'" media="all" />'."\n");
        }
    }
}


/**
 * Passe o nome do grupo JS ver aquivo "min/groupsConfig.php" que 
 * quer retornar o include dele compactado.
 * 
 * Retorna 
 * <pre> <script type="text/javascript" src="url do grupo de arquivos compactados" ></script> </pre>
 * 
 * @param string $name
 * @param boolean $workFake True se quiser que ele não agrupe
 */
function jsGroup($name,$workFake = false){
    $js = "js_".$name;
    $url = (base_url() . "min/g=$js");  // add &debug to url to enable debug mode
    
    if(!$workFake)
        echo('<script async type="text/javascript" src="'.$url.'" ></script>'."\n");
    
    else{
        
        // se estamos trabalhando em fake mode, requesta os arquivos diretamente
        // sem passar pela compactação ou grupo
        $grupos = require('min/groupsConfig.php');
        $index = $grupos['js_'.$name];
        foreach($index as $file){
            $url = base_url().substr($file, 2);
            echo('<script type="text/javascript" src="'.$url.'" ></script>'."\n");
        }
    }
}

/**
 * Adiciona masca em php, caso seja para exibição de ceps,telefones....
 * 
 * @param string $mascara, EX: (##) ####-#### OU #####-###
 * @param string $string, Valor a ser recebido!
 * @return string
 */

function mascara_string($mascara,$string){
        $string = str_replace(" ","",$string);
        for($i=0;$i<strlen($string);$i++){
                $mascara[strpos($mascara,"#")] = $string[$i];
        }
        $mascara = str_replace("#","",$mascara); // Tira SObras
        return $mascara;
}

/**
 * Retira todos caracteres da string, deixa apena os numeros de 0-9
 * 
 * @param string $string valor a ser recebido!
 * @return string
 */
function somente_numeros($string){
    return preg_replace("/[^0-9]/","", $string);
}

/**
 * Retira todos acentos e caracteres especiais, 
 * recomendado para montar URL amivagel
 * 
 * @param string $palavra palavra/texto a ter caracteres especiais retirados.
 * @param string $troca Troca especifica por espaço em branco, pode ser um array.
 * @param string $separador Sepadores das palavras.
 * @return string
 */
function toURL($palavra, $troca = array(), $separador = '-') {
    if (!empty($troca)) {
        $palavra = str_replace((array) $troca, ' ', $palavra);
    }

    $limpa = iconv('UTF-8', 'ASCII//TRANSLIT', $palavra);
    $limpa = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $limpa);
    $limpa = strtolower(trim($limpa, '-'));
    $limpa = preg_replace("/[\/_|+ -]+/", $separador, $limpa);

    return $limpa;
}


/**
 * Le para linha de comando a entrada do usuário.
 * 
 * @author Helton Ritter <helton@noiatec.com.br>
 * @return string
 */
function clir(){
    $text = trim(fgets(STDIN));
    return $text;
}

?>